/**
 * 后台js工具类
 */
var timeout = false;
var jsUtils={
		
		getFormatMoney: function(account) {
			var ret = '';
			if (account != null){
				if (account >= 10000) {
					ret = account / 10000;
					ret = formatMoney(ret, 1) + " 万元";
				} else{
					ret = formatMoney(account, 1) + " 元";
				}
			}
			return ret;
		},

	getTerm: function(proTerm) {
			var ret = '';
			if (proTerm != null) {
				if (proTerm > 360) {
					ret = proTerm / 360 + " 年";
				} else if (proTerm > 30) {
					ret = proTerm / 30 + " 月";
				} else {
					ret = proTerm + " 天";
				}
			}
			return ret;
	},
	serializeJson:function(jq){
		var arr = jq.serializeArray();
		var ret = {};
		if (arr) {
			for (var i = 0; i < arr.length; i++) {
				var k = arr[i].name;
				var v = arr[i].value;
				if (typeof ret[k] != 'undefined') {
					if (ret[k] instanceof Array) {
						ret[k].push(v);
					}
					else {
						ret[k] = [ ret[k], v ];
					}	
				} else {
					ret[k] = v;
				}
			}
		}
		return ret;
	},
	
	gotoUrl:function(url,params){
		var edcodeParam='';
		if(url.length==0){
			console.error('参数错误：url为空');
		}else{
			if(params!=null&&params.length!=0){
				for(var i=0,len=params.length;i<len;i++){
					edcodeParam+=params[i].name+'='+encodeURI(params[i].value)+'&';
				}
				edcodeParam=edcodeParam.substring(0,edcodeParam.length-1);
				location.href=url+'?'+edcodeParam;
			}else{
				location.href=url;
			}
		}
	},
	
	//权限控制，控制按钮权限
	controlFunctionBtn:function(){
		//控制按钮权限
			
		var funcBtnsArr=funcBtns.split(',');
		//alert("funcBtnsArr = " + funcBtnsArr);
		$('a').each(function(idx,el){
			var btnName=$(el).attr('name');
			if(funcBtns.indexOf(btnName) >= 0){
				$(el).css('display','');
			}
		});
		
		 
		
		$('button').each(function(idx,el){
			var btnName=$(el).attr('name');
			if(funcBtns.indexOf(btnName)>= 0){
				$(el).css('display','');
			}
		});
		 
		/*
		var funcBtnsArr=funcBtns.split(',');
		alert("funcBtnsArr = " + funcBtnsArr);
		$('a').each(function(idx,el){
			var btnName=$(el).attr('name');
			
			for(var i=0;i<funcBtnsArr.length;i++){
				if($.trim(btnName)==$.trim(funcBtnsArr[i])){
					$(el).css('display','');
				}
			}
		});
		
		$('button').each(function(idx,el){
			var btnName=$(el).attr('name');
			alert("btnName = " + btnName + "  funcBtnsArr.length = " + funcBtnsArr[0])
			for(var i=0;i<funcBtnsArr.length;i++){
				if($.trim(btnName)==$.trim(funcBtnsArr[i])){
					$(el).css('display','');
				}
			}
		});
		*/
	},
	
	getDictionaryTxtByType:function(type,val){
		
		if( val!=0 && (val==''||val==null)){
			return '';
		}
		
		var txt=$('#comDictionary select[name="'+type+'"] option[value="'+val+'"]').text();
		
		
		 
		
		return txt;
	}
}
//异步请求方法  url请求路径，data参数，callback回调方法，type请求类型
function sendApiNoLoad(url, data, callback, type, scope, loadingEl) {
	if(timeout == false){
        if(userId == null || userId == ""){
            timeout = true;
            alert("登录已超时，请重新登录");
            var url=APP_ADDRESS+'login.jsp';
            parent.location.href=url;
            return;
        }
	}else {
		return;
	}


	jQuery.ajax({
		type : type,
		url : APP_ADDRESS+url,
		contentType : 'application/json',
		data : JSON.stringify(data),
		dataType : 'json',
		timeout : 30000, // 30秒超时
		success : function(result, textStatus) {
			
			callback.call(scope, result);
			if(window.parent.setLiAbled){
				window.parent.setLiAbled();
				}
		},
		error : function(result) {
			
			console.log(result);
			//alert(result.status+'请求错误，请稍后再试！');
			if(window.parent.setLiAbled){
				window.parent.setLiAbled();
				}
		}
	});
};
//异步请求方法  url请求路径，data参数，callback回调方法，type请求类型
function sendApiNoLoad01(url, data, callback, type, scope, loadingEl) {

	jQuery.ajax({
		type : type,
		url :url,
		contentType : 'application/json',
		data : JSON.stringify(data),
		dataType : 'json',
		timeout : 30000, // 30秒超时
		success : function(result, textStatus) {

			callback.call(scope, result);
			if(window.parent.setLiAbled){
				window.parent.setLiAbled();
			}
		},
		error : function(result) {

			console.log(result);
			//alert(result.status+'请求错误，请稍后再试！');
			if(window.parent.setLiAbled){
				window.parent.setLiAbled();
			}
		}
	});
};

//同步请求方法  url请求路径，data参数，callback回调方法，type请求类型
function sendApiNoLoadSync(url, data, callback, type, scope, loadingEl) {
    if(timeout == false){
        if(userId == null || userId == ""){
            timeout = true;
            alert("登录已超时，请重新登录");
            var url=APP_ADDRESS+'login.jsp';
            parent.location.href=url;
            return;
        }
    }else {
        return;
    }

	jQuery.ajax({
		async : false,
		type : type,
		url : APP_ADDRESS+url,
		contentType : 'application/json',
		data : JSON.stringify(data),
		dataType : 'json',
		timeout : 30000, // 30秒超时
		success : function(result, textStatus) {
			
			callback.call(scope, result);
			
			if(window.parent.setLiAbled){
				window.parent.setLiAbled();
				}
		},
		error : function(result) {
			if(window.parent.setLiAbled){
			window.parent.setLiAbled();
			}
			//alert(result.status+'请求错误，请稍后再试！');
		}
	});
};

//同步请求方法  url请求路径，data参数，callback回调方法，type请求类型
function sendApiNoLoadSyncFile(url, data, callback, type, scope, loadingEl) {
	jQuery.ajax({
		async : false,
		type : type,
		contentType : 'multipart/form-data',
		url : APP_ADDRESS+url,
		data : data,
		timeout : 30000, // 30秒超时
		success : function(result, textStatus) {
			callback.call(scope, result);
		},
		error : function(result) {
			alert(result.status+'请求错误，请稍后再试！');
		}
	});
};

function ajaxFileUpload(url,fileElementId, data){
	$.ajaxFileUpload({
		url : APP_ADDRESS+url,
		secureuri: false,
		fileElementId: fileElementId,//file控件id
		dataType: 'json',
		data: data,
		type:"POST",
		success: function (data, status) {
			if (typeof(data.error) != 'undefined') {
				if (data.error != '') {
					alert(data.error);
				} else {
					alert(data.msg);
				}
			}
		},
		error: function (data, status, e) {
			alert("error");
			alert(e);
		}
	});
}

Date.prototype.format = function(format)//
{
	var o = {
		"M+" : this.getMonth() + 1, // month
		"d+" : this.getDate(), // day
		"h+" : this.getHours(), // hour
		"m+" : this.getMinutes(), // minute
		"s+" : this.getSeconds(), // second
		"q+" : Math.floor((this.getMonth() + 3) / 3), // quarter
		"S" : this.getMilliseconds()
	// millisecond
	};
	if (/(y+)/.test(format))
		format = format.replace(RegExp.$1, (this.getFullYear() + "")
				.substr(4 - RegExp.$1.length));
	for ( var k in o)
		if (new RegExp("(" + k + ")").test(format))
			format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k]
					: ("00" + o[k]).substr(("" + o[k]).length));
	return format;
};

/**
 * 转换日期对象为日期字符串
 * 
 * @param date
 *            日期对象
 * @param isFull
 *            是否为完整的日期数据, 为true时, 格式如"2000-03-05 01:05:04" 为false时, 格式如
 *            "2000-03-05"
 * @return 符合要求的日期字符串
 */
function getSmpFormatDate(date, isFull) {
	var pattern = "";
	if (isFull == true || isFull == undefined) {
		pattern = "yyyy-MM-dd hh:mm:ss";
	} else {
		pattern = "yyyy-MM-dd";
	}
	return getFormatDate(date, pattern);
}
/**
 * 转换当前日期对象为日期字符串
 * 
 * @param date
 *            日期对象
 * @param isFull
 *            是否为完整的日期数据, 为true时, 格式如"2000-03-05 01:05:04" 为false时, 格式如
 *            "2000-03-05"
 * @return 符合要求的日期字符串
 */
function getSmpFormatNowDate(isFull) {
	return getSmpFormatDate(new Date(), isFull);
}
/**
 * 转换long值为日期字符串
 * 
 * @param l
 *            long值
 * @param isFull
 *            是否为完整的日期数据, 为true时, 格式如"2000-03-05 01:05:04" 为false时, 格式如
 *            "2000-03-05"
 * @return 符合要求的日期字符串
 */
function getSmpFormatDateByLong(l, isFull) {
	return getSmpFormatDate(new Date(l), isFull);
}
/**
 * 转换long值为日期字符串
 * 
 * @param l
 *            long值
 * @param pattern
 *            格式字符串,例如：yyyy-MM-dd hh:mm:ss
 * @return 符合要求的日期字符串
 */
function getFormatDateByLong(l, pattern) {
	return getFormatDate(new Date(l), pattern);
}
/**
 * 转换日期对象为日期字符串
 * 
 * @param l
 *            long值
 * @param pattern
 *            格式字符串,例如：yyyy-MM-dd hh:mm:ss
 * @return 符合要求的日期字符串
 */
function getFormatDate(date, pattern) {
	if (date == undefined) {
		date = new Date();
	}
	if (pattern == undefined) {
		pattern = "yyyy-MM-dd hh:mm:ss";
	}
	return date.format(pattern);
}

/*
 * formatMoney(s,type) 功能：金额按千位逗号分割 参数：s，需要格式化的金额数值. 参数：type,判断格式化后的金额是否需要小数位.
 * 返回：返回格式化后的数值字符串.
 */
/*
 * formatMoney(s,type) 功能：金额按千位逗号分割 参数：s，需要格式化的金额数值. 参数：type,判断格式化后的金额是否需要小数位.
 * 返回：返回格式化后的数值字符串.
 */
function formatMoney(s, type) {
	   var orign=s;
	   if (/[^0-9\.]/.test(s))
	      return "0";
	   if (s == null || s == "")
	      return "0";
	   s = s.toString().replace(/^(\d*)$/, "$1.");
	   s = (s + "00").replace(/(\d*\.\d\d)\d*/, "$1");
	   s = s.replace(".", ",");
	   var re = /(\d)(\d{3},)/;
	   while (re.test(s))
	      s = s.replace(re, "$1,$2");
	   s = s.replace(/,(\d\d)$/, ".$1");
	   if (type == 0&& orign.toString().indexOf('.')<0) {// 不带小数位(默认是有小数位)
	      var a = s.split(".");
	      if (a[1] == "00") {
	         s = a[0];
	      }
	   }
	   return s;
	}
